//将 transformCSS 封装为全局函数
(function(w){
    function transformCSS(ele,prop,val){
        /*
        * 设置: transformCSS(ele,'translateX',100)
        * 读取: transformCSS(ele,'translateX') 只能读取通过本方法设置的 transform 样式
        * 参数: ele 元素对象
        *       prop 变形样式 字符串
        *       val 样式值
        * */
        //判断当前对象是否已有样式仓库
        if(ele.store === undefined){
            //没有样式仓库 , 创建初始化样式仓库对象,用于保存样式
            ele.store={};
        }
        //设置样式 , arguments 中封装了实参
        if(arguments.length == 3){
            //将参数保存到样式仓库中
            ele.store[prop] = val;
            //创建局部变量用于表示 transform 样式值
            var str = '';
            //遍历仓库对象的属性
            for(var i in ele.store){
                switch (i) {
                    //平移
                    case 'translateX':
                    case 'translateY':
                    case 'translateZ':
                       str += i + '(' + ele.store[i] + 'px) ';
                        break;
                    //旋转
                    case 'rotate':
                    case 'rotateX':
                    case 'rotateY':
                    case 'rotateZ':
                        str += i + '(' + ele.store[i] + 'deg) ';
                        break;
                    //缩放
                    case 'scale':
                    case 'scaleX':
                    case 'scaleY':
                    case 'scaleZ':
                        str += i + '(' + ele.store[i] + ') ';
                        break;
                }
            }
            //设置样式
            ele.style.transform = str;
        }
        //读取样式
        if(arguments.length == 2){
            //判断当前对象的样式仓库中是否含有该样式
            if(ele.store[prop]){
                //含有该样式 , 则返回样式仓库中的样式
                //注意: 只能读取通过本方法设置的 transform 样式
                return ele.store[prop];
            }
            //当前样式仓库中没有该样式 , 返回默认值
            /*
            * 根据样式名返回不同值:
            *       translate / rotate    0
            *       scale                 1
            * */
            //判断是否以 scale 开头
            var start = prop.substr(0,5);
            if(start === 'scale'){
                //是 scale
                return 1;
            }else{
                //是 rotate 或translate
                return 0;
            }
        }
    }
    w.transformCSS=transformCSS;
})(window);
//匿名函数自调用 , 用以暴露闭包中的局部变量